package com.xmtlxx.web.controller.wms.service;

import com.xmtlxx.common.core.domain.PageQuery;
import com.xmtlxx.common.core.page.TableDataInfo;
import com.xmtlxx.oms.domain.vo.TaskVo;
import com.xmtlxx.wms.domain.Deal;
import com.xmtlxx.wms.domain.bo.DealBo;
import com.xmtlxx.wms.domain.vo.DealVo;

import java.util.Collection;
import java.util.List;

/**
 * 处置Service接口
 *
 * @author xmtlxx
 * @date 2022-08-15
 */
public interface IDealService {

    /**
     * 查询处置
     *
     * @param id 处置主键
     * @return 处置
     */
    DealVo queryById(String id);

    DealVo queryByTaskId(String taskId);

    TaskVo initDealBean(List<String> ids);

    /**
     * 查询处置列表
     *
     * @param bo 处置
     * @return 处置集合
     */
    TableDataInfo<DealVo> queryPageList(DealBo bo, PageQuery pageQuery);

    /**
     * 查询处置列表
     *
     * @param bo 处置
     * @return 处置集合
     */
    List<DealVo> queryList(DealBo bo);

    /**
     * 修改处置
     *
     * @param bo 处置
     * @return 结果
     */
    Deal insertByBo(DealBo bo);

    Deal insertByDealBo(DealBo bo);

    /**
     * 修改处置
     *
     * @param bo 处置
     * @return 结果
     */
    Deal updateByBo(DealBo bo);

    Deal updateByDealBo(DealBo bo);

    Boolean updateDealByBo(DealBo bo);

    Boolean validateDeal(DealBo bo);

    /**
     * 校验并批量删除处置信息
     *
     * @param ids 需要删除的处置主键集合
     * @param isValid 是否校验,true-删除前校验,false-不校验
     * @return 结果
     */
    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);

    DealVo getDealByVo(DealBo bo);
}
